# variation_utils.py
"""
变异计算模块 - 提供计算随机变异的工具函数
"""
import numpy as np

def apply_variation(mean_value, cv_percent):
    """
    为给定平均值应用随机变异
    
    参数:
    mean_value: 平均值
    cv_percent: 变异系数 (%)
    
    返回:
    应用变异后的值
    """
    # 变异系数转换为小数
    cv_fraction = cv_percent / 100.0
    
    # 计算对数正态分布参数
    sigma = np.sqrt(np.log(1 + cv_fraction**2))
    mu = np.log(mean_value) - 0.5 * sigma**2
    
    # 生成随机值
    return np.random.lognormal(mu, sigma)
